import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import '../../common/index.dart';
import '../index.dart';

class MyPlantController extends GetxController {
  MyPlantController();

  // 我的植物列表
  final RxList<Plant> plants = <Plant>[].obs;

  // 加载植物数据
  Future<void> _init_data() async {
    plants.value = await PlantService().get_plants();
    debugPrint('已加载 ${plants.length} 个植物数据');
    update(["my_plant"]);
  }

  // 刷新植物数据
  Future<void> refresh_plants() async {
    await _init_data();
  }

  // 处理植物点击事件
  void on_plant_tap(Plant plant) {
    debugPrint("正在跳转到植物详情页，植物ID: ${plant.id}, 名称: ${plant.name}");
    // 确保植物对象有效
    if (plant.id.isEmpty) {
      debugPrint("错误: 无效的植物ID");
      return;
    }

    // 打印完整植物对象，确保数据正确
    debugPrint("植物完整数据: $plant");

    // 先注册控制器并传入植物数据
    Get.delete<PlantDetailController>(); // 删除可能存在的旧实例
    Get.put(PlantDetailController(plant: plant)); // 注册新的控制器并传入植物

    // 然后跳转到植物详情页
    RouteUtil.push(RouteNames.plantDetail);
  }

  // 查看植物详情
  void view_plant_detail(Plant plant) {
    // 与onPlantTap相同的实现
    on_plant_tap(plant);
  }

  // 添加植物
  Future<void> add_plant() async {
    final loginIs = Storage().get_bool(Constants.login_status);
    if (!loginIs) {
      SmartDialog.showToast(
        'Please login first',
        alignment: Alignment.bottomCenter,
      );
      return;
    }

    // 跳转到添加植物页面
    final result = await RouteUtil.push(RouteNames.addPlant);
    if (result == true) {
      // 如果有新植物添加成功，刷新数据
      await refresh_plants();
    }
  }

  // @override
  // void onInit() {
  //   super.onInit();
  // }

  @override
  void onReady() {
    super.onReady();
    _init_data();
  }

  // @override
  // void onClose() {
  //   super.onClose();
  // }
}
